<!DOCTYPE html>
<html>
<head><meta name="generator" content="Hexo 3.8.0">
  <meta charset="utf-8">
  

  
  <title>SmileYi</title>
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  <meta property="og:type" content="website">
<meta property="og:title" content="SmileYi">
<meta property="og:url" content="http://smileyi.gitee.io/page/2/index.html">
<meta property="og:site_name" content="SmileYi">
<meta property="og:locale" content="zh-CN">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="SmileYi">
  
    <link rel="alternate" href="/atom.xml" title="SmileYi" type="application/atom+xml">
  
  
    <link rel="icon" href="/favicon.png">
  
  
    <link href="//fonts.googleapis.com/css?family=Source+Code+Pro" rel="stylesheet" type="text/css">
  
  <link rel="stylesheet" href="/css/style.css">
</head>
</html>
<body>
  <div id="container">
    <div id="wrap">
      <header id="header">
  <div id="banner"></div>
  <div id="header-outer" class="outer">
    <div id="header-title" class="inner">
      <h1 id="logo-wrap">
        <a href="/" id="logo">SmileYi</a>
      </h1>
      
        <h2 id="subtitle-wrap">
          <a href="/" id="subtitle">只要学会破罐子破摔 世界就会豁然开朗</a>
        </h2>
      
    </div>
    <div id="header-inner" class="inner">
      <nav id="main-nav">
        <a id="main-nav-toggle" class="nav-icon"></a>
        
          <a class="main-nav-link" href="/">首页</a>
        
          <a class="main-nav-link" href="/archives">归档</a>
        
      </nav>
      <nav id="sub-nav">
        
          <a id="nav-rss-link" class="nav-icon" href="/atom.xml" title="RSS Feed"></a>
        
        <a id="nav-search-btn" class="nav-icon" title="搜索"></a>
      </nav>
      <div id="search-form-wrap">
        <form action="//google.com/search" method="get" accept-charset="UTF-8" class="search-form"><input type="search" name="q" class="search-form-input" placeholder="Search"><button type="submit" class="search-form-submit">&#xF002;</button><input type="hidden" name="sitesearch" value="http://smileyi.gitee.io"></form>
      </div>
    </div>
  </div>
</header>
      <div class="outer">
        <section id="main">
  
    <article id="post-Tcp三次握手" class="article article-type-post" itemscope itemprop="blogPost">
  <div class="article-meta">
    <a href="/2019/04/10/Tcp三次握手/" class="article-date">
  <time datetime="2019-04-10T03:36:24.000Z" itemprop="datePublished">2019-04-10</time>
</a>
    
  <div class="article-category">
    <a class="article-category-link" href="/categories/网络/">网络</a>
  </div>

  </div>
  <div class="article-inner">
    
    
      <header class="article-header">
        
  
    <h1 itemprop="name">
      <a class="article-title" href="/2019/04/10/Tcp三次握手/">Tcp三次握手</a>
    </h1>
  

      </header>
    
    <div class="article-entry" itemprop="articleBody">
      
        <h3 id="Tcp简介"><a href="#Tcp简介" class="headerlink" title="Tcp简介"></a>Tcp简介</h3><p>TCP（传输控制协议）是一种面向连接的、可靠的、基于字节流的传输层通信协议，位于OSI网络模型中的第四层——传输层。</p>
<h3 id="Tcp包大小"><a href="#Tcp包大小" class="headerlink" title="Tcp包大小"></a>Tcp包大小</h3><p>MTU最大传输单元，这个最大传输单元实际上和链路层协议有着密切的关系，EthernetII帧的结构DMAC+SMAC+Type+Data+CRC由于以太网传输电气方面的限制，每个以太网帧都有最小的大小64bytes最大不能超过1518bytes，对于小于或者大于这个限制的以太网帧我们都可以视之为错误的数据帧，一般的以太网转发设备会丢弃这些数据帧。</p>
<p>由于以太网EthernetII最大的数据帧是1518Bytes这样，刨去以太网帧的帧头（DMAC目的MAC地址48bit=6Bytes+SMAC源MAC地址48bit=6Bytes+Type域2bytes）14Bytes和帧尾CRC校验部分4Bytes那么剩下承载上层协议的地方也就是Data域最大就只能有1500Bytes这个值我们就把它称之为MTU。</p>
<p>TCP 包的大小就应该是 1500 - IP头(20或24) - TCP头(20或24) = 1460 (BYTES)</p>
<p>由于 IP 和 TCP 协议往往有额外的头信息，所以 TCP 负载实际为1400bytes左右。</p>
<p><img src="/image/190410/01.png" alt="图1"></p>
<h3 id="Tcp头解释"><a href="#Tcp头解释" class="headerlink" title="Tcp头解释"></a>Tcp头解释</h3><p><img src="/image/190410/02.png" alt="图2"></p>
<ul>
<li>端口：源端口和目的端口，各占2个字节，分别写入源端口和目的端口；</li>
<li>序号：占4个字节，TCP连接中传送的字节流中的每个字节都按顺序编号。例如，一段报文的序号字段值是 301 ，而携带的数据共有100字段，显然下一个报文段（如果还有的话）的数据序号应该从401开始；</li>
<li>确认号：占4个字节，是期望收到对方下一个报文的第一个数据字节的序号。例如，B收到了A发送过来的报文，其序列号字段是501，而数据长度是200字节，这表明B正确的收到了A发送的到序号700为止的数据。因此，B期望收到A的下一个数据序号是701，于是B在发送给A的确认报文段中把确认号置为701；</li>
<li>数据偏移：占4位，它指出TCP报文的数据距离TCP报文段的起始处有多远；</li>
<li>保留位占6位，保留今后使用，但目前应都位0；</li>
<li>标志共六位，依次表示：<ul>
<li>紧急URG：当URG=1，表明紧急指针字段有效。告诉系统此报文段中有紧急数据；</li>
<li>确认ACK：仅当ACK=1时，确认号字段才有效。TCP规定，在连接建立后所有报文的传输都必须把ACK置1；</li>
<li>推送PSH：当两个应用进程进行交互式通信时，有时在一端的应用进程希望在键入一个命令后立即就能收到对方的响应，这时候就将PSH=1；</li>
<li>复位RST：当RST=1，表明TCP连接中出现严重差错，必须释放连接，然后再重新建立连接；</li>
<li>同步SYN：在连接建立时用来同步序号。当SYN=1，ACK=0，表明是连接请求报文，若同意连接，则响应报文中应该使SYN=1，ACK=1；</li>
<li>终止FIN：用来释放连接。当FIN=1，表明此报文的发送方的数据已经发送完毕，并且要求释放；</li>
</ul>
</li>
<li>窗口：占2字节，指的是通知接收方，发送本报文你需要有多大的空间来接受；</li>
<li>检验和：占2字节，校验首部和数据这两部分；</li>
<li>紧急指针：占2字节，指出本报文段中的紧急数据的字节数；</li>
<li>选项：长度可变，定义一些其他的可选的参数。</li>
</ul>
<h3 id="Tcp三次握手过程"><a href="#Tcp三次握手过程" class="headerlink" title="Tcp三次握手过程"></a>Tcp三次握手过程</h3><p>所谓三次握手即建立TCP连接，就是指建立一个TCP连接时，需要客户端和服务端总共发送3个包以确认连接的建立。整个流程如下图所示：</p>
<p><img src="/image/190410/03.png" alt="图3"></p>
<ul>
<li>第一次握手：Client将标志位SYN置为1，随机产生一个值seq=J，并将该数据包发送给Server，Client进入SYN_SENT状态，等待Server确认。</li>
<li>第二次握手：Server收到数据包后由标志位SYN=1知道Client请求建立连接，Server将标志位SYN和ACK都置为1，ack=J+1，随机产生一个值seq=K，并将该数据包发送给Client以确认连接请求，Server进入SYN_RCVD状态。</li>
<li>第三次握手：Client收到确认后，检查ack是否为J+1，ACK是否为1，如果正确则将标志位ACK置为1，ack=K+1，并将该数据包发送给Server，Server检查ack是否为K+1，ACK是否为1，如果正确则连接建立成功，Client和Server进入ESTABLISHED状态，完成三次握手，随后Client与Server之间可以开始传输数据了。</li>
</ul>
<p><img src="/image/190410/04.png" alt="图4"></p>
<p>上图是一次完整请求的tcp包交互流程，当某个主机开启一个TCP会话时，他的初始序列号是随机的，可能是0和4294967295之间的任意值，这里的0代表的是相对序列表，并不是真实的。前三个包代表tcp的三次握手，这三次交互中并不传输任何有效数据，数据传输从包4开始。</p>
<ul>
<li>包1：TCP会话的每一端的序列号都从0开始，同样的，确认号也从0开始，因为此时通话还未开始，没有通话的另一端需要确认</li>
<li>包2：服务端响应客户端的请求，响应中附带序列号0（由于这是服务端在该次TCP会话中发送的第一个包，所以序列号为0）和相对确认号1（表明服务端收到了客户端发送的包1中的SYN），需要注意的是，尽管客户端没有发送任何有效数据，确认号还是被加1，这是因为接收的包中包含SYN或FIN标志位（并不会对有效数据的计数产生影响，因为含有SYN或FIN标志位的包并不携带有效数据）</li>
<li>包3：和包2中一样，客户端使用确认号1响应服务端的序列号0，同时响应中也包含了客户端自己的序列号（由于服务端发送的包中确认收到了客户端发送的SYN，故客户端的序列号由0变为1）<br>此时，通信的两端的序列号都为1，通信两端的序列号增1发生在所有TCP会话的建立过程中。</li>
<li>当序号或者确认大达到最大值2^32-1时，数字会再次从0开始计数</li>
</ul>
<h3 id="Syn包攻击"><a href="#Syn包攻击" class="headerlink" title="Syn包攻击"></a>Syn包攻击</h3><p>在三次握手过程中，Server发送SYN-ACK之后，收到Client的ACK之前的TCP连接称为半连接（half-open connect），此时Server处于SYN_RCVD状态，当收到ACK后，Server转入ESTABLISHED状态。SYN攻击就是Client在短时间内伪造大量不存在的IP地址，并向Server不断地发送SYN包，Server回复确认包，并等待Client的确认，由于源地址是不存在的，因此，Server需要不断重发直至超时，这些伪造的SYN包将产时间占用未连接队列，导致正常的SYN请求因为队列满而被丢弃，从而引起网络堵塞甚至系统瘫痪。</p>
<h3 id="防范方法"><a href="#防范方法" class="headerlink" title="防范方法"></a>防范方法</h3><ol>
<li>根据netstat查看到的对方IP特征（ netstat -na |grep SYN_RECV|more），利用iptables临时屏蔽相应IP，但这种方法和容易误伤。</li>
<li>更改系统参数tcp_synack_retries，减少syn的重试次数，tcp_synack_retries默认为5，表示重发5次，每次等待30~40秒。</li>
<li>更改系统参数net.ipv4.tcp_max_syn_backlog，增大syn的连接数</li>
<li>开启SYN cookies，服务器的初始序列号是通过对客户端IP地址、客户端端囗、服务器IP地址和服务器端囗以及其他一些安全数值等要素进行hash运算，加密得到的，称之为cookie。当服务器遭受SYN攻击使得backlog队列满时，服务器并不拒绝新的SYN请求，而是回复cookie（回复包的SYN序列号）给客户端， 如果收到客户端的ACK包，服务器将客户端的ACK序列号减去1得到cookie比较值，并将上述要素进行一次hash运算，看看是否等于此cookie。如果相等，直接完成三次握手，此方法并没有严格执行tcp的三次握手，而是采取一种绕过的方式。</li>
</ol>
<h3 id="攻击工具"><a href="#攻击工具" class="headerlink" title="攻击工具"></a>攻击工具</h3><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">hping3 -q -n -a 2.2.2.2 -S -s 53 --keep -p 445 --flood 192.168.73.138</span><br></pre></td></tr></table></figure>

      
    </div>
    <footer class="article-footer">
      <a data-url="http://smileyi.gitee.io/2019/04/10/Tcp三次握手/" data-id="ck5390nrc000tkeczalxg0nqu" class="article-share-link">分享</a>
      
      
  <ul class="article-tag-list"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/原创/">原创</a></li></ul>

    </footer>
  </div>
  
</article>


  
    <article id="post-Linux基本配置" class="article article-type-post" itemscope itemprop="blogPost">
  <div class="article-meta">
    <a href="/2019/04/10/Linux基本配置/" class="article-date">
  <time datetime="2019-04-10T03:28:12.000Z" itemprop="datePublished">2019-04-10</time>
</a>
    
  <div class="article-category">
    <a class="article-category-link" href="/categories/Linux/">Linux</a>
  </div>

  </div>
  <div class="article-inner">
    
    
      <header class="article-header">
        
  
    <h1 itemprop="name">
      <a class="article-title" href="/2019/04/10/Linux基本配置/">Linux基本配置</a>
    </h1>
  

      </header>
    
    <div class="article-entry" itemprop="articleBody">
      
        <h3 id="1-文件交换空间配置"><a href="#1-文件交换空间配置" class="headerlink" title="1.文件交换空间配置"></a>1.文件交换空间配置</h3><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line"># 创建空文件(容量为2G)</span><br><span class="line">sudo dd if=/dev/zero of=/swapfile2 bs=2048k count=1000</span><br><span class="line"></span><br><span class="line"># 将该文件设置为swap文件</span><br><span class="line">sudo mkswap /swapfile2</span><br><span class="line"></span><br><span class="line"># 启动swap文件</span><br><span class="line">sudo swapon /swapfile2</span><br><span class="line"></span><br><span class="line">## 关闭swap文件</span><br><span class="line">#sudo swapoff /swapfile2</span><br></pre></td></tr></table></figure>
<h3 id="2-防火墙文件配置"><a href="#2-防火墙文件配置" class="headerlink" title="2.防火墙文件配置"></a>2.防火墙文件配置</h3><p>配置样本:<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br></pre></td><td class="code"><pre><span class="line"># Firewall configuration written by system-config-firewall</span><br><span class="line"># Manual customization of this file is not recommended.</span><br><span class="line">*filter</span><br><span class="line">:INPUT ACCEPT [0:0]</span><br><span class="line">:FORWARD ACCEPT [0:0]</span><br><span class="line">:OUTPUT ACCEPT [0:0]</span><br><span class="line"></span><br><span class="line">-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT</span><br><span class="line">-A INPUT -p icmp -j ACCEPT</span><br><span class="line">-A INPUT -i lo -j ACCEPT</span><br><span class="line"></span><br><span class="line"># 开放 22、80、443、3306端口</span><br><span class="line">-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT</span><br><span class="line">-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT</span><br><span class="line">-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT</span><br><span class="line">-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT</span><br><span class="line">-A INPUT -j REJECT --reject-with icmp-host-prohibited</span><br><span class="line">-A FORWARD -j REJECT --reject-with icmp-host-prohibited</span><br><span class="line"></span><br><span class="line"># 禁止某IP访问</span><br><span class="line">-I INPUT -s 45.34.7.34 -j DROP </span><br><span class="line"></span><br><span class="line">COMMIT</span><br></pre></td></tr></table></figure></p>
<p>Centos加载方法:<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">vim /etc/sysconfig/iptables</span><br><span class="line">service iptables restart</span><br></pre></td></tr></table></figure></p>
<p>Ubuntu加载方法:<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">iptables-restore &lt; iptables.conf</span><br></pre></td></tr></table></figure></p>

      
    </div>
    <footer class="article-footer">
      <a data-url="http://smileyi.gitee.io/2019/04/10/Linux基本配置/" data-id="ck5390nr00007keczwlcph2cw" class="article-share-link">分享</a>
      
      
  <ul class="article-tag-list"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/笔记/">笔记</a></li></ul>

    </footer>
  </div>
  
</article>


  
    <article id="post-Base64算法原理" class="article article-type-post" itemscope itemprop="blogPost">
  <div class="article-meta">
    <a href="/2019/04/09/Base64算法原理/" class="article-date">
  <time datetime="2019-04-09T02:37:38.000Z" itemprop="datePublished">2019-04-09</time>
</a>
    
  <div class="article-category">
    <a class="article-category-link" href="/categories/算法/">算法</a>
  </div>

  </div>
  <div class="article-inner">
    
    
      <header class="article-header">
        
  
    <h1 itemprop="name">
      <a class="article-title" href="/2019/04/09/Base64算法原理/">Base64算法原理</a>
    </h1>
  

      </header>
    
    <div class="article-entry" itemprop="articleBody">
      
        <h3 id="概述"><a href="#概述" class="headerlink" title="概述"></a>概述</h3><p>Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一，常用于传递HTTP中较长的标识信息、或者对于一些信息进行简单的加密。当我们用记事本打开一些二进制文件时会显示一堆乱码，主要是因为二进制文件中包含了很多无法显示和打印的字符，这种情况下可以对数据进行base64编码，使得记事本等文本工具可以对其处理。</p>
<p>Base64编码原理是将原始数据分组，每组3个字节24位。再将每组的24位拆成4个字节，每个字节6位，字节的取值范围位0~63(0~63所对应的字符分别为:ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/)，根据数值到处对应的字符，最后拼接成一个字符串。当最后一组不足3个字节时，用“0”补全，每缺一个字节，编码后便在结尾加一个“=”，解码的时候会自动去掉</p>
<h3 id="编码步骤"><a href="#编码步骤" class="headerlink" title="编码步骤"></a>编码步骤</h3><h4 id="1-计算出字符串的二进制值，例如-duxiaoman-d对应的ASCII码100-转为8位二进制是01100100，以此类推duxiaoman对应的二进制值为："><a href="#1-计算出字符串的二进制值，例如-duxiaoman-d对应的ASCII码100-转为8位二进制是01100100，以此类推duxiaoman对应的二进制值为：" class="headerlink" title="1.计算出字符串的二进制值，例如: duxiaoman, d对应的ASCII码100,转为8位二进制是01100100，以此类推duxiaoman对应的二进制值为："></a>1.计算出字符串的二进制值，例如: duxiaoman, d对应的ASCII码100,转为8位二进制是01100100，以此类推duxiaoman对应的二进制值为：</h4><table>
<thead>
<tr>
<th>字母</th>
<th>ascii码</th>
<th>二进制</th>
</tr>
</thead>
<tbody>
<tr>
<td>s</td>
<td>115</td>
<td>01110011</td>
</tr>
<tr>
<td>m</td>
<td>109</td>
<td>01101101</td>
</tr>
<tr>
<td>i</td>
<td>105</td>
<td>01101001</td>
</tr>
<tr>
<td>l</td>
<td>108</td>
<td>01101100</td>
</tr>
<tr>
<td>e</td>
<td>101</td>
<td>01100101</td>
</tr>
<tr>
<td>y</td>
<td>121</td>
<td>01111001</td>
</tr>
<tr>
<td>i</td>
<td>105</td>
<td>01101001</td>
</tr>
</tbody>
</table>
<h4 id="2-将二进制值合并后分组，每6个为一组，并计算出所对应的10进制值，范围在0-63之间-获取对应的字符："><a href="#2-将二进制值合并后分组，每6个为一组，并计算出所对应的10进制值，范围在0-63之间-获取对应的字符：" class="headerlink" title="2.将二进制值合并后分组，每6个为一组，并计算出所对应的10进制值，范围在0~63之间, 获取对应的字符："></a>2.将二进制值合并后分组，每6个为一组，并计算出所对应的10进制值，范围在0~63之间, 获取对应的字符：</h4><p>合并后的二进制串: 011100 110110 110101 101001 011011 000110 010101 111001 011010 01，最后一组01不足6位则用”0”补全，上述字符串共划分为10组，差2组可以整出4，所以在结尾补上2个”=”</p>
<table>
<thead>
<tr>
<th>二进制</th>
<th>十进制</th>
<th>字母</th>
</tr>
</thead>
<tbody>
<tr>
<td>011100</td>
<td>28</td>
<td>c</td>
</tr>
<tr>
<td>110110</td>
<td>54</td>
<td>2</td>
</tr>
<tr>
<td>110101</td>
<td>53</td>
<td>1</td>
</tr>
<tr>
<td>101001</td>
<td>41</td>
<td>p</td>
</tr>
<tr>
<td>011011</td>
<td>27</td>
<td>b</td>
</tr>
<tr>
<td>000110</td>
<td>6</td>
<td>G</td>
</tr>
<tr>
<td>010101</td>
<td>21</td>
<td>V</td>
</tr>
<tr>
<td>111001</td>
<td>57</td>
<td>5</td>
</tr>
<tr>
<td>011010</td>
<td>26</td>
<td>a</td>
</tr>
<tr>
<td>010000</td>
<td>16</td>
<td>Q</td>
</tr>
</tbody>
</table>
<p>将所得字符组合，并在结尾处补上”=”, 得出smileyi的base64编码为：c21pbGV5aQ==</p>

      
    </div>
    <footer class="article-footer">
      <a data-url="http://smileyi.gitee.io/2019/04/09/Base64算法原理/" data-id="ck5390nqq0000keczn01te7gl" class="article-share-link">分享</a>
      
      
  <ul class="article-tag-list"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/原创/">原创</a></li></ul>

    </footer>
  </div>
  
</article>


  
    <article id="post-Linux编译安装PHP-Nginx-Mysql" class="article article-type-post" itemscope itemprop="blogPost">
  <div class="article-meta">
    <a href="/2019/04/07/Linux编译安装PHP-Nginx-Mysql/" class="article-date">
  <time datetime="2019-04-07T12:57:45.000Z" itemprop="datePublished">2019-04-07</time>
</a>
    
  <div class="article-category">
    <a class="article-category-link" href="/categories/Linux/">Linux</a>
  </div>

  </div>
  <div class="article-inner">
    
    
      <header class="article-header">
        
  
    <h1 itemprop="name">
      <a class="article-title" href="/2019/04/07/Linux编译安装PHP-Nginx-Mysql/">Linux编译安装PHP+Nginx+Mysql</a>
    </h1>
  

      </header>
    
    <div class="article-entry" itemprop="articleBody">
      
        <h4 id="获取相关软件包"><a href="#获取相关软件包" class="headerlink" title="获取相关软件包"></a>获取相关软件包</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br></pre></td><td class="code"><pre><span class="line"># 下载nginx</span><br><span class="line">wget -c http://resource.smileyi.cn/linux/nginx-1.5.13.tar.gz</span><br><span class="line"></span><br><span class="line"># 下载pcre</span><br><span class="line">wget -c http://resource.smileyi.cn/linux/pcre-8.35.tar.gz</span><br><span class="line"></span><br><span class="line"># 下载MySQL</span><br><span class="line">wget -c http://resource.smileyi.cn/linux/mysql-5.6.11.tar.gz</span><br><span class="line"></span><br><span class="line"># 下载PHP</span><br><span class="line">wget -c http://resource.smileyi.cn/linux/php-7.2.tar.gz  </span><br><span class="line"></span><br><span class="line"># 下载cmake（MySQL编译工具） </span><br><span class="line">wget -c http://resource.smileyi.cn/linux/cmake-2.8.8.tar.gz</span><br><span class="line"></span><br><span class="line">#下载libmcrypt（PHPlibmcrypt模块） </span><br><span class="line">wget -c http://resource.smileyi.cn/linux/libmcrypt-2.5.8.tar.gz</span><br></pre></td></tr></table></figure>
<h4 id="安装编译工具及运行库"><a href="#安装编译工具及运行库" class="headerlink" title="安装编译工具及运行库"></a>安装编译工具及运行库</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br></pre></td><td class="code"><pre><span class="line"># Centos</span><br><span class="line">yum install make apr* autoconf automake curl-devel \</span><br><span class="line">    gcc gcc-c++ zlib-devel openssl openssl-devel \</span><br><span class="line">    pcre-devel gd kernel keyutils patch perl \</span><br><span class="line">    kernel-headers compat* mpfr cpp glibc libgomp \</span><br><span class="line">    libstdc++-devel ppl cloog-ppl keyutils-libs-devel \</span><br><span class="line">    libcom_err-devel libsepol-devel  libselinux-devel \</span><br><span class="line">    krb5-devel zlib-devel libXpm* freetype libjpeg* libpng* \</span><br><span class="line">    php-common php-gd ncurses* libtool* libxml2 \</span><br><span class="line">    libxml2-devel patch freetype-devel</span><br><span class="line"></span><br><span class="line"># Ubuntu</span><br><span class="line">sudo apt install libwrap0-dev libncurses5-dev libssl-dev \</span><br><span class="line">    libxml2-dev libsslcommon2-dev libcurl4-openssl-dev \</span><br><span class="line">    pkg-config libbz2-dev libjpeg-dev libpng12-dev libxpm-dev \</span><br><span class="line">    libfreetype6-dev libmcrypt-dev libxslt1-dev libiconv-hook-dev \</span><br><span class="line">    libpcre3-dev gcc g++</span><br></pre></td></tr></table></figure>
<h4 id="安装cmake"><a href="#安装cmake" class="headerlink" title="安装cmake"></a>安装cmake</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">tar zxvf cmake-2.8.8.tar.gz </span><br><span class="line">cd cmake-2.8.8</span><br><span class="line">./configure --prefix=/usr/local/cmake</span><br><span class="line">make</span><br><span class="line">make install</span><br></pre></td></tr></table></figure>
<h4 id="安装Mysql"><a href="#安装Mysql" class="headerlink" title="安装Mysql"></a>安装Mysql</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br></pre></td><td class="code"><pre><span class="line">tar zxvf mysql-5.6.11.tar.gz</span><br><span class="line">cd mysql-5.6.11 </span><br><span class="line">cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \</span><br><span class="line">    -DMYSQL_DATADIR=/usr/local/mysql/data　　</span><br><span class="line">make　</span><br><span class="line">make install　　</span><br><span class="line">cd /usr/local/mysql</span><br><span class="line"></span><br><span class="line"># 创建mysql用户</span><br><span class="line">useradd mysql -M</span><br><span class="line"></span><br><span class="line"># 生成mysql系统数据库</span><br><span class="line">./scripts/mysql_install_db --basedir=/usr/local/mysql \</span><br><span class="line">    --datadir=/usr/local/mysql/data --user=mysql</span><br><span class="line"></span><br><span class="line"># 把Mysql加入系统启动　</span><br><span class="line">cp ./support-files/mysql.server /etc/init.d/mysqld</span><br><span class="line"></span><br><span class="line"># 加入开机启动</span><br><span class="line">chkconfig mysqld on </span><br><span class="line"></span><br><span class="line"># 删除系统默认配置文件/etc/my.cnf</span><br><span class="line">rm /etc/my.cnf</span><br><span class="line"></span><br><span class="line"># 设置root密码</span><br><span class="line">mysql -uroot  </span><br><span class="line">mysql&gt; SET PASSWORD = PASSWORD(&apos;root&apos;);</span><br><span class="line"></span><br><span class="line"># 赋予mysql root用户权限</span><br><span class="line">sudo /usr/local/mysql/bin/mysql_upgrade -uroot -proot</span><br></pre></td></tr></table></figure>
<h4 id="安装pcre"><a href="#安装pcre" class="headerlink" title="安装pcre"></a>安装pcre</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">tar zxvf pcre-8.35.tar.gz</span><br><span class="line">cd pcre-8.35</span><br><span class="line">./configure --prefix=/usr/local/pcre </span><br><span class="line">make </span><br><span class="line">make install</span><br></pre></td></tr></table></figure>
<h4 id="安装nginx"><a href="#安装nginx" class="headerlink" title="安装nginx"></a>安装nginx</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line">useradd nginx -M</span><br><span class="line">tar zxvf nginx-1.5.13.tar.gz</span><br><span class="line">cd nginx-1.5.13</span><br><span class="line">./configure --prefix=/usr/local/nginx \</span><br><span class="line">    --without-http_memcached_module \</span><br><span class="line">    --user=nginx --group=nginx \</span><br><span class="line">    --with-http_stub_status_module \</span><br><span class="line">    --with-http_ssl_module</span><br><span class="line">make</span><br><span class="line">make install</span><br></pre></td></tr></table></figure>
<h4 id="安装libmcrypt"><a href="#安装libmcrypt" class="headerlink" title="安装libmcrypt"></a>安装libmcrypt</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">tar zxvf libmcrypt-2.5.8.tar.gz</span><br><span class="line">cd libmcrypt-2.5.8</span><br><span class="line">./configure</span><br><span class="line">make</span><br><span class="line">nake install</span><br></pre></td></tr></table></figure>
<h4 id="安装PHP"><a href="#安装PHP" class="headerlink" title="安装PHP"></a>安装PHP</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br></pre></td><td class="code"><pre><span class="line">tar -zvxf php-7.2.tar.gz</span><br><span class="line">cd php-7.2</span><br><span class="line">mkdir -p /usr/local/php</span><br><span class="line">./configure --prefix=/usr/local/php \</span><br><span class="line">    --with-config-file-path=/usr/local/php/etc \</span><br><span class="line">    --with-mysql-sock=/var/run/mysql/mysql.sock \</span><br><span class="line">    --with-mhash \</span><br><span class="line">    --with-openssl \</span><br><span class="line">    --with-mysqli=shared,mysqlnd \</span><br><span class="line">    --with-pdo-mysql=shared,mysqlnd \</span><br><span class="line">    --with-gd \</span><br><span class="line">    --with-iconv \</span><br><span class="line">    --with-zlib \</span><br><span class="line">    --enable-zip \</span><br><span class="line">    --enable-inline-optimization \</span><br><span class="line">    --disable-debug \</span><br><span class="line">    --disable-rpath \</span><br><span class="line">    --enable-shared \</span><br><span class="line">    --enable-xml \</span><br><span class="line">    --enable-bcmath \</span><br><span class="line">    --enable-shmop \</span><br><span class="line">    --enable-mbstring \</span><br><span class="line">    --enable-pcntl \</span><br><span class="line">    --enable-sockets \</span><br><span class="line">    --with-xmlrpc \</span><br><span class="line">    --enable-soap \</span><br><span class="line">    --without-pear \</span><br><span class="line">    --with-gettext \</span><br><span class="line">    --enable-session \</span><br><span class="line">    --with-curl \</span><br><span class="line">    --with-jpeg-dir \</span><br><span class="line">    --with-freetype-dir \</span><br><span class="line">    --enable-fpm \</span><br><span class="line">    --enable-fastcgi \</span><br><span class="line">    --with-fpm-user=php \</span><br><span class="line">    --with-fpm-group=php</span><br><span class="line">make</span><br><span class="line">make install</span><br></pre></td></tr></table></figure>

      
    </div>
    <footer class="article-footer">
      <a data-url="http://smileyi.gitee.io/2019/04/07/Linux编译安装PHP-Nginx-Mysql/" data-id="ck5390nr10008keczi4w24iq6" class="article-share-link">分享</a>
      
      
  <ul class="article-tag-list"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/原创/">原创</a></li></ul>

    </footer>
  </div>
  
</article>


  
    <article id="post-PHP编译参数" class="article article-type-post" itemscope itemprop="blogPost">
  <div class="article-meta">
    <a href="/2019/04/05/PHP编译参数/" class="article-date">
  <time datetime="2019-04-05T12:36:25.000Z" itemprop="datePublished">2019-04-05</time>
</a>
    
  <div class="article-category">
    <a class="article-category-link" href="/categories/PHP/">PHP</a>
  </div>

  </div>
  <div class="article-inner">
    
    
      <header class="article-header">
        
  
    <h1 itemprop="name">
      <a class="article-title" href="/2019/04/05/PHP编译参数/">PHP编译参数</a>
    </h1>
  

      </header>
    
    <div class="article-entry" itemprop="articleBody">
      
        <h4 id="常用参数"><a href="#常用参数" class="headerlink" title="常用参数"></a>常用参数</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br></pre></td><td class="code"><pre><span class="line">--prefix=/usr/local/php                             PHP 安装目录 </span><br><span class="line">--with-apxs2=/usr/local/apache/bin/apxs             Apache的PHP模块</span><br><span class="line">--with-config-file-path=/usr/local/php/etc          指定php.ini位置</span><br><span class="line">--with-MySQL=/usr/local/mysql                       mysql安装目录，对mysql的支持</span><br><span class="line">--with-MySQLi=/usr/local/mysql/bin/mysql_config     mysqli文件目录,优化支持</span><br><span class="line">--enable-safe-mode                                  打开安全模式</span><br><span class="line">--enable-ftp                                        打开ftp的支持</span><br><span class="line">--enable-zip                                        打开对zip的支持</span><br><span class="line">--with-bz2                                          打开对bz2文件的支持                        </span><br><span class="line">--with-jpeg-dir                                     打开对jpeg图片的支持</span><br><span class="line">--with-png-dir                                      打开对png图片的支持</span><br><span class="line">--with-freetype-dir                                 打开对freetype字体库的支持</span><br><span class="line">--without-iconv                                     关闭iconv函数，种字符集间的转换</span><br><span class="line">--with-libXML-dir                                   打开libxml2库的支持</span><br><span class="line">--with-XMLrpc                                       打开xml-rpc的c语言</span><br><span class="line">--with-zlib-dir                                     打开zlib库的支持</span><br><span class="line">--with-gd                                           打开gd库的支持</span><br><span class="line">--enable-gd-native-ttf                              支持TrueType字符串函数库</span><br><span class="line">--with-curl                                         打开curl浏览工具的支持</span><br><span class="line">--with-curlwrappers                                 运用curl工具打开url流</span><br><span class="line">--with-ttf                                          打开freetype1.*的支持，可以不加了</span><br><span class="line">--with-xsl                                          打开XSLT 文件支持，扩展了libXML2库 ，需要libxslt软件</span><br><span class="line">--with-gettext                                      打开gnu 的gettext 支持，编码库用到</span><br><span class="line">--with-pear                                         打开pear命令的支持，PHP扩展用的</span><br><span class="line">--enable-calendar                                   打开日历扩展功能</span><br><span class="line">--enable-mbstring                                   多字节，字符串的支持</span><br><span class="line">--enable-bcmath                                     打开图片大小调整,用到zabbix监控的时候用到了这个模块</span><br><span class="line">--enable-sockets                                    打开 sockets 支持</span><br><span class="line">--enable-exif                                       图片的元数据支持</span><br><span class="line">--enable-magic-quotes                               魔术引用的支持</span><br><span class="line">--disable-rpath                                     关闭额外的运行库文件</span><br><span class="line">--disable-debug                                     关闭调试模式</span><br><span class="line">--with-mime-magic=/usr/share/file/magic.mime        魔术头文件位置</span><br><span class="line">--with-gmp</span><br><span class="line">--enable-inline-optimization</span><br><span class="line">--with-openssl                                      openssl的支持，加密传输时用到的</span><br><span class="line">--enable-dbase</span><br><span class="line">--with-pcre-dir=/usr/local/bin/pcre-config          perl的正则库案安装位置</span><br><span class="line">--disable-dmalloc</span><br><span class="line">--with-gdbm                                         dba的gdbm支持</span><br><span class="line">--enable-sigchild</span><br><span class="line">--enable-sysvsem</span><br><span class="line">--enable-sysvshm</span><br><span class="line">--enable-zend-multibyte                             支持zend的多字节</span><br><span class="line">--enable-mbregex</span><br><span class="line">--enable-wddx</span><br><span class="line">--enable-shmop</span><br><span class="line">--enable-soap</span><br><span class="line">--with-mcrypt                                       mcrypt算法     </span><br><span class="line">--with-mhash                                        mhash算法</span><br></pre></td></tr></table></figure>
<h4 id="CGI方式相关参数"><a href="#CGI方式相关参数" class="headerlink" title="CGI方式相关参数"></a>CGI方式相关参数</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">--enable-fpm                    打上PHP-fpm 补丁后才有这个参数，CGI方式安装的启动程序</span><br><span class="line">--enable-fastCGI                支持fastcgi方式启动PHP</span><br><span class="line">--enable-force-CGI-redirect     同上 ,帮助里没有解释</span><br><span class="line">--with-ncurses                  支持ncurses 屏幕绘制以及基于文本终端的图形互动功能的动态库</span><br><span class="line">--enable-pcntl                  freeTDS需要用到的，可能是链接mssql 才用到</span><br></pre></td></tr></table></figure>
<h4 id="实例"><a href="#实例" class="headerlink" title="实例"></a>实例</h4><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br></pre></td><td class="code"><pre><span class="line">./configure --prefix=/usr/local/php \</span><br><span class="line">--with-config-file-path=/usr/local/php/etc \</span><br><span class="line">--with-mysql-sock=/var/run/mysql/mysql.sock \</span><br><span class="line">--with-mhash \</span><br><span class="line">--with-openssl \</span><br><span class="line">--with-mysqli=shared,mysqlnd \</span><br><span class="line">--with-pdo-mysql=shared,mysqlnd \</span><br><span class="line">--with-gd \</span><br><span class="line">--with-iconv \</span><br><span class="line">--with-zlib \</span><br><span class="line">--enable-zip \</span><br><span class="line">--enable-inline-optimization \</span><br><span class="line">--disable-debug \</span><br><span class="line">--disable-rpath \</span><br><span class="line">--enable-shared \</span><br><span class="line">--enable-xml \</span><br><span class="line">--enable-bcmath \</span><br><span class="line">--enable-shmop \</span><br><span class="line">--enable-mbstring \</span><br><span class="line">--enable-pcntl \</span><br><span class="line">--enable-sockets \</span><br><span class="line">--with-xmlrpc \</span><br><span class="line">--enable-soap \</span><br><span class="line">--without-pear \</span><br><span class="line">--with-gettext \</span><br><span class="line">--enable-session \</span><br><span class="line">--with-curl \</span><br><span class="line">--with-jpeg-dir \</span><br><span class="line">--with-freetype-dir \</span><br><span class="line">--enable-fpm \</span><br><span class="line">--enable-fastcgi \</span><br><span class="line">--with-fpm-user=php \</span><br><span class="line">--with-fpm-group=php</span><br></pre></td></tr></table></figure>
      
    </div>
    <footer class="article-footer">
      <a data-url="http://smileyi.gitee.io/2019/04/05/PHP编译参数/" data-id="ck5390nrg0015kecz7gkd9k5o" class="article-share-link">分享</a>
      
      
  <ul class="article-tag-list"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/总结/">总结</a></li></ul>

    </footer>
  </div>
  
</article>


  


  <nav id="page-nav">
    
    <a class="extend prev" rel="prev" href="/">&laquo; 上一页</a><a class="page-number" href="/">1</a><span class="page-number current">2</span><a class="page-number" href="/page/3/">3</a><a class="extend next" rel="next" href="/page/3/">下一页 &raquo;</a>
  </nav>

</section>
        
          <aside id="sidebar">
  
    
  <div class="widget-wrap">
    <h3 class="widget-title">分类</h3>
    <div class="widget">
      <ul class="category-list"><li class="category-list-item"><a class="category-list-link" href="/categories/Docker/">Docker</a><span class="category-list-count">1</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/Linux/">Linux</a><span class="category-list-count">2</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/MacOS/">MacOS</a><span class="category-list-count">1</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/Mysql/">Mysql</a><span class="category-list-count">3</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/Nginx/">Nginx</a><span class="category-list-count">2</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/PHP/">PHP</a><span class="category-list-count">2</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/Swoole/">Swoole</a><span class="category-list-count">1</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/算法/">算法</a><span class="category-list-count">2</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/网络/">网络</a><span class="category-list-count">1</span></li></ul>
    </div>
  </div>


  
    
  <div class="widget-wrap">
    <h3 class="widget-title">标签</h3>
    <div class="widget">
      <ul class="tag-list"><li class="tag-list-item"><a class="tag-list-link" href="/tags/原创/">原创</a><span class="tag-list-count">10</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/总结/">总结</a><span class="tag-list-count">2</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/笔记/">笔记</a><span class="tag-list-count">1</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/转载/">转载</a><span class="tag-list-count">2</span></li></ul>
    </div>
  </div>


  
    
  <div class="widget-wrap">
    <h3 class="widget-title">归档</h3>
    <div class="widget">
      <ul class="archive-list"><li class="archive-list-item"><a class="archive-list-link" href="/archives/2020/01/">一月 2020</a><span class="archive-list-count">2</span></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2019/07/">七月 2019</a><span class="archive-list-count">1</span></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2019/06/">六月 2019</a><span class="archive-list-count">1</span></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2019/04/">四月 2019</a><span class="archive-list-count">7</span></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2019/03/">三月 2019</a><span class="archive-list-count">4</span></li></ul>
    </div>
  </div>


  
    
  <div class="widget-wrap">
    <h3 class="widget-title">最新文章</h3>
    <div class="widget">
      <ul>
        
          <li>
            <a href="/2020/01/05/Swoole之server/">swoole之server</a>
          </li>
        
          <li>
            <a href="/2020/01/02/Certbot-免费的ssl证书/">Certbot--免费的ssl证书</a>
          </li>
        
          <li>
            <a href="/2019/07/13/Nginx限流配置/">Nginx限流配置</a>
          </li>
        
          <li>
            <a href="/2019/06/23/Mysql分区/">Mysql分区</a>
          </li>
        
          <li>
            <a href="/2019/04/15/Rsa算法/">Rsa算法</a>
          </li>
        
      </ul>
    </div>
  </div>

  
</aside>
        
      </div>
      <footer id="footer">
  
  <div class="outer">
    <div id="footer-info" class="inner">
      &copy; 2020 王中艺<br>
      <a href="http://www.beian.miit.gov.cn/">京ICP备18032247号-2</a>
    </div>
  </div>
</footer>
    </div>
    <nav id="mobile-nav">
  
    <a href="/" class="mobile-nav-link">首页</a>
  
    <a href="/archives" class="mobile-nav-link">归档</a>
  
</nav>
    

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>


  <link rel="stylesheet" href="/fancybox/jquery.fancybox.css">
  <script src="/fancybox/jquery.fancybox.pack.js"></script>


<script src="/js/script.js"></script>



  </div>
</body>
</html>